<?php

// Define path to application directory
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

// Define application environment
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));

// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'),
    get_include_path(),
)));
/** Zend_Application */
require_once 'Zend/Application.php';

// Create application, bootstrap, and run
$application = new Zend_Application(APPLICATION_ENV);

$memcached_config = ZendX_Config::factory(APPLICATION_PATH . '/configs/memcached.ini', APPLICATION_ENV);
$cache = Zend_Cache::factory('Core', 'Memcached', array('automatic_serialization' => true), $memcached_config->toArray());
Zend_Registry::set('Zend_Cache', $cache);
if(APPLICATION_ENV === 'production') {
	if(FALSE === ($application_config = $cache->load('applicationConfig'))) {
		$application_config = ZendX_Config::factory(APPLICATION_PATH . '/configs/application.xml', APPLICATION_ENV);
		$cache->save($application_config, 'applicationConfig');
	}
} else {
	$application_config = ZendX_Config::factory(APPLICATION_PATH . '/configs/application.xml', APPLICATION_ENV);
}
Zend_Registry::set('Application_Config', $application_config);

$application->setOptions($application_config->toArray());
$application->bootstrap()
            ->run();